package cn.sq.musicserver.plug.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.HashMap;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: SQ
 * Date: 2020/12/11
 * Time: 14:30
 * Description: 插件返回结果
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="插件搜索对象", description="插件搜索对象")
public class PlugSearchResult {

    @ApiModelProperty(value = "歌曲信息")
    List<Song> songs ;

    @ApiModelProperty(value = "搜索总条数")
    private Long PlugMusicSearchCount;

    @ApiModelProperty(value = "搜索每页多少条")
    private Long PlugMusicSearchSize;

    @ApiModelProperty(value = "搜索当前的页码")
    private Long PlugMusicSearchIndex;

    @NotNull
    @ApiModelProperty(value = "插件名称 下载时候回根据类型来进行下载")
    private String PlugName;

    @Data
    @EqualsAndHashCode(callSuper = false)
    @Accessors(chain = true)
    @ApiModel(value="SqMusic对象-歌曲信息", description="SqMusic对象-歌曲信息")
    public static class Song{
        @ApiModelProperty(value = "歌曲标识")
        private String Id;
        @NotNull
        @ApiModelProperty(value = "歌曲名称")
        private String MusicName;
        @NotNull
        @ApiModelProperty(value = "歌曲作者")
        private String MusicArtists;

        @ApiModelProperty(value = "专辑信息")
        private String MusicAlbum;

        @ApiModelProperty(value = "歌词")
        private String MusicLyric;

        @ApiModelProperty(value = "歌曲封面")
        private String MusicImage;

        @ApiModelProperty(value = "音乐简介")
        private String MusicDescribe;

        @ApiModelProperty(value = "音乐类型(风格)")
        private String MusicType;

        @NotNull
        @ApiModelProperty(value = "插件名称 下载时候回根据类型来进行下载")
        private String PlugName;

        @ApiModelProperty(value = "插件返回的自定义信息")
        private HashMap<String,String> PlugData;

    }
}
